// 导入Vue 构造函数
import Vue from 'vue'
// 导入Vuex构造函数
import Vuex from 'vuex'

import getters from './getters'
// 导入三个子模块
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'
import route from './modules/route'
// 导入让vue数据持久化的插件
import createPersisttedstate from 'vuex-persistedstate'

Vue.use(Vuex)

const store = new Vuex.Store({
  // 注册4个子模块(采用对象的简写语法)
  modules: {
    app,
    settings,
    user,
    route
  },
  // getters是state的快捷方式
  getters,
  plugins: [
    // 使用让vuex数据持久化的插件，传入配置
    createPersisttedstate({
      // 本地存储的键名 localStorage.setItem('user-rz',vuex下的state数据)
      key: 'user-rz',
      // 哪些模块下的数据需要持久化
      paths: [
        'app',
        'settings'
      ]
    })
  ]
})

export default store
